/**
 * Copyright 2013 PlantPlaces.com
 */
package com.plantplaces.dao;

import java.util.List;

import com.plantplaces.dto.Plant;
import com.plantplaces.dto.PlantSearch;

/**
 * Provide access to plant data.
 * 
 * @author jonesbr
 *
 */
public interface IPlantDAO {

	/**
	 * Return plants that match a given set of search criteria.
	 * 
	 * @param plantSearch the search criteria given to find a plant.
	 * @return a list of plants that match the search criteria
	 */
	public List<Plant> fetchPlants(PlantSearch plantSearch) throws Exception;
	
	/**
	 * Fetch by the GUID.
	 * 
	 * Caution: if there are no plants that match this guid, this method will return null.
	 * 
	 * @param id  The global unique identifier of this plant.
	 * @return the plant that matches this GUID.
	 * @throws Exception
	 */
	public Plant fetchPlantByPlantPlacesId(int id) throws Exception;
	
}
